package IO.stream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class TestInput {
    public static void main(String[] args) {
//        InputStream inputStream = null;
//        try {
//            inputStream = new FileInputStream("D:/test.txt");
//
//            while (true) {
//                int b = inputStream.read();// 读取一个字节,件读完后,返回 -1
//                if (b == -1) {
//                    break;// 读到文件末尾
//                }
//                System.out.println(b);
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            // 关闭文件,释放资源
//            try {
//                inputStream.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }


//        // 一次读一个字节
//        try(InputStream inputStream = new FileInputStream("D:/test.txt");) {
//            // try会自动调用 close,不用显示地调
//            // 实现了Closeable接口的类可以被自动调用
//            while (true) {
//                int b = inputStream.read();// 读取一个字节,件读完后,返回 -1
//                if (b == -1) {
//                    break;// 读到文件末尾
//                }
//                System.out.println(b);
//            }
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }


        // 一次读多个字节
        // 所有的流对象都实现了 Closeable接口,写在这里就能自动释放资源
        try(InputStream inputStream = new FileInputStream("D:/test.txt");) {
            while (true) {
                byte[] buffer = new byte[1024];
                // 将读到的结果放到 buffer数组中
                int len = inputStream.read(buffer);
                if (len == -1) {
                    break;
                }
                for (int i = 0; i < len; i++) {
                    System.out.println(buffer[i]);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
